﻿using System.Threading.Tasks;

namespace Sidvall.AuthorizationManager.Data
{
    public partial interface IAuthorizationScope : Sidvall.Data.IDataRowContextProvider
    {
        System.Nullable<long> AuthorizationScopeId { get; set; }
        global::Sidvall.AuthorizationManager.Data.AuthorizationScopeAccessLevel DefaultResourceActionAccessLevel { get; set; }
        global::Sidvall.AuthorizationManager.Data.AuthorizationScopeAccessLevel DefaultResourceItemAccessLevel { get; set; }
        string DefaultUserContext { get; set; }
        bool IsEnabled { get; set; }
        global::Sidvall.AuthorizationManager.Data.MissingUserPolicy MissingUserPolicyId { get; set; }
        string Name { get; set; }
        bool RequireActiveUser { get; set; }
        global::Sidvall.AuthorizationManager.Data.ResourceItemActionPolicy ResourceItemPolicyId { get; set; }
        System.Nullable<System.Int32> ServerConnectionId { get; set; }
        System.Collections.Generic.IEnumerable<IAuthorizationScopeExport> AuthorizationScopeExports { get; }
        void SetAuthorizationScopeExports(Sidvall.Data.IDataRowProvider<IAuthorizationScopeExport> items);
        System.Collections.Generic.IEnumerable<IAuthorizationScopeResourceAction> AuthorizationScopeResourceActions { get; }
        void SetAuthorizationScopeResourceActions(Sidvall.Data.IDataRowProvider<IAuthorizationScopeResourceAction> items);
        System.Collections.Generic.IEnumerable<IAuthorizationScopeResourceItem> AuthorizationScopeResourceItems { get; }
        void SetAuthorizationScopeResourceItems(Sidvall.Data.IDataRowProvider<IAuthorizationScopeResourceItem> items);
        System.Collections.Generic.IEnumerable<IAuthorizationScopeUser> AuthorizationScopeUsers { get; }
        void SetAuthorizationScopeUsers(Sidvall.Data.IDataRowProvider<IAuthorizationScopeUser> items);
    }
}